These are the cafes I go for studying/working usually :)

cafe1<- paste(sep = "<br/>",
             "<b><a href='https://picnicafe.wixsite.com/menu'>picnic cafe</a></b>",
             "No. 75, Wenzhou St.,",
             "Da’an Dist., Taipei City")
cafe2<- paste(sep = "<br/>",
              "<b><a href='https://www.wenshanroasting.com/pages/about'>Wenshan Roasting</a></b>",
              "No. 11-1, Ln. 56, Sec. 3, Xinsheng S. Rd.,",
              "Da’an Dist., Taipei City")
cafe3<- paste(sep = "<br/>",
              "<b><a href='https://www.facebook.com/artscafewenzhou/'>art cafe</a></b>",
              "No. 1, Ln. 60, Sec. 3, Xinsheng S. Rd.,",
              "Da’an Dist., Taipei City")


leaflet(taiwan) %>%
  addPolygons(weight = 0.5) %>%
  addTiles(group="Kort") %>%
  addPopups( 121.53303360808431,25.020617671987484, cafe1, options = popupOptions(closeButton = TRUE))%>%
  addPopups( 121.53346137924791,25.02065467382164, cafe2, options = popupOptions(closeButton = TRUE))%>%            
  addPopups( 121.53360303473205,25.020267176740354, cafe3, options = popupOptions(closeButton = TRUE))

Another design of map

Cause I couldn’t decide which one is better.

library(htmltools)

df <- read.csv(textConnection(
  "Name,Long,Lat
picnic cafe,121.53303360808431,25.020617671987484
Wenshan Roasting,121.53346137924791,25.02065467382164
art cafe,121.53360303473205,25.020267176740354"
))

leaflet(df) %>% addTiles() %>%
  addMarkers(~Long, ~Lat, popup = ~htmlEscape(Name))

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.